<工程化>git-使用
git 概念
- 工作区(workspace):存放本地项目文件
- 暂存区(stage):通过add命令将工作区文件存放到暂存区
- 本地仓库(repository):使用commit命令将暂存区文件添加到本地仓库
- 远程仓库(remote):github、gitlab等托管仓库
git config
- 配置文件存储位置:–global /etc/gitconfig、–system ~/.gitconfig、–local 工作区/.git/config
1 | -- global对当前用户所有仓库有效 |
git clone
- 除了HTTP(s)以外,还支持SSH、Git、本地文件协议等
1 | git clone <版本库的网址> <本地目录名> |
git add
- 将工作区修改添加到暂存区
1 | // 添加当前目录所有修改 |
git clone
- 除了HTTP(s)以外,还支持SSH、Git、本地文件协议等
1 | git clone <版本库的网址> <本地目录名> |
git status
- 显示工作目录和暂存区的状态
git diff
1 | // 显示工作区与暂存区的差别 |
git commit
1 | // 将暂存区提交 |
git reset
- soft: 不改变工作区和暂存区,只移动 HEAD 到指定 commit。
- mixed: 只改变暂存区,不改变工作区。这是默认参数,通常用于撤销git add。
- hard:改变工作区和暂存区到指定 commit。该参数等同于重置,可能会引起数据损失。
1 | // 将当前分支指针倒3个commit,并改变暂存区 |
- 一些撤销操作
1 | // 撤销暂存区的内容 |
git rm
- 用于从工作区或者索引中删除文件,提交commit时会将文件的删除操作提交
- 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。
1 | // 删除工作区的文件 |
git branch
1 | // 查看分支列表 |
git checkout
1 | // 切换分支 |
git merge
1 | // 将dev1合并到当前分支 |
git mergetool
git log
1 | // 显示当前分支日志 |
git stash
1 | // 暂时保存没有提交的工作 |
git tag
1 | // 列出tag |
git fetch
1 | // 拉取所有远程分支 |
git pull
1 | // 拉取远程分支与本地分支合并 |
git push
1 |
git remote
git rebase
git with ssh
- 参考:官方文档
- 查看是否存在ssh配置
1 | // 查看.ssh文件夹里是否存在key相关文件(.pub文件) |
- 新建ssh key文件
1 | // 执行命令后第一步需要设置key文件名称 |
- 修改config文件,编辑.ssh文件夹下config文件,没有创建
1 | Host * |
- 添加秘钥
1 | eval $(ssh-agent -s) |
- github\gitlab上添加公钥
1 | // 测试连接情况 |